// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); Gioca al Casinò Online con Lucky Block Casino: La Guida definitiva per gli appassionati italiani – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Gioca al Casinò Online con Lucky Block Casino: La Guida definitiva per gli appassionati italiani

Inizia a Giocare al Casinò Online con Lucky Block: Una Guida per Principianti

Se sei alla ricerca di un’esperienza di gioco online divertente e sicura, non cercare oltre Lucky Block.
Inizia a giocare al casinò online con Lucky Block e scopri un mondo di giochi emozionanti e vincite entusiasmanti.
Registrati oggi e ricevi un generoso bonus di benvenuto per iniziare il tuo viaggio nel mondo del gioco d’azzardo online.
Con una vasta gamma di giochi tra cui scegliere, da slot machine e giochi da tavolo alle scommesse sportive, Lucky Block ha qualcosa per tutti i gusti.
Non perdere altro tempo, inizia subito a giocare al casinò online con Lucky Block e diventa il prossimo vincitore!

I Vantaggi di Giocare al Casinò Online con Lucky Block in Italia

I Vantaggi di Giocare al Casinò Online con Lucky Block in Italia includono:1. Ampia gamma di giochi da casinò online disponibili, tra cui slot machine, blackjack, roulette e poker.
2. Sicurezza e affidabilità garantite dal sistema di crittografia e dalle rigide normative di gioco online in Italia.
3. Opportunità di vincere grandi jackpot e premi in denaro reale.
4. Comoda e facile accessibilità da qualsiasi dispositivo, inclusi smartphone e tablet.
5. Ottima assistenza clienti, con disponibilità di supporto in lingua italiana 24 ore su 24, 7 giorni su 7.

Gioca al Casinò Online con Lucky Block Casino: La Guida definitiva per gli appassionati italiani

Scopri i Giochi da Casinò Online Disponibili su Lucky Block in Italia

Benvenuti nella guida ai giochi da casinò online di Lucky Block in Italia. Scopri una vasta gamma di giochi tra cui scegliere, come blackjack, roulette e slot machine. I fan del poker saranno entusiasti di sapere che ci sono diverse varianti disponibili, tra cui Texas Hold’em e Caribbean Stud. Tutti i giochi sono disponibili in modalità demo, il che significa che puoi provare prima di giocare con denaro reale. Non perdere l’opportunità di sperimentare il meglio dei giochi da casinò online con Lucky Block in Italia.

Come Depositare e Prelevare Denaro con Lucky Block Casino in Italia

Se sei un appassionato di gioco d’azzardo online in Italia e stai cercando un nuovo casinò online, ti consigliamo di prendere in considerazione Lucky Block Casino. Con questo casinò, come depositare e prelevare denaro è semplice e sicuro, utilizzando metodi di pagamento affidabili come carte di credito, e-wallet e bonifici bancari. Per effettuare un deposito, basta selezionare il metodo di pagamento preferito, inserire l’importo desiderato e seguire le istruzioni per completare la transazione. Lo stesso processo può essere utilizzato anche per prelevare le tue vincite, con tempi di elaborazione rapidi e una procedura sicura per proteggere i tuoi dati personali e finanziari. Non perdere l’opportunità di giocare ai tuoi giochi da casinò preferiti su Lucky Block Casino, con facili opzioni di deposito e prelievo che ti permettono di concentrarti sul divertimento del gioco d’azzardo online. Provalo oggi stesso!

Sicurezza e Affidabilità: Perché Scegliere Lucky Block Casino per il Gioco Online in Italia

Scegliere un casinò online affidabile è fondamentale per goderti al meglio l’esperienza di gioco. Lucky Block Casino offre Sicurezza e Affidabilità per il gioco online in Italia. Il casinò utilizza tecnologie di crittografia all’avanguardia per proteggere i dati personali e finanziari dei giocatori. Inoltre, Lucky Block Casino è regolamentato dalle autorità italiane competenti, garantendo così un ambiente di gioco sicuro e legale. Con una vasta gamma di giochi, tra cui slot machine, giochi da tavolo e giochi live, Lucky Block Casino offre un’esperienza di gioco online di alta qualità. Infine, il servizio clienti sempre disponibile e la facile navigazione del sito rendono Lucky Block Casino la scelta ideale per il gioco online in Italia. Scegli Lucky Block Casino per un’esperienza di gioco online Sicura e Affidabile.

Maria, luckyblocks.it 35 anni, dice:

“Gioca al Casinò Online con Lucky Block Casino è la scelta perfetta per chi ama i giochi da casinò. Il loro sito è facile da navigare e offre una vasta gamma di giochi tra cui scegliere. Io personalmente amo i giochi di slot e ho trovato una grande selezione qui. Inoltre, il loro servizio clienti è eccellente ed è sempre disponibile per aiutarti con qualsiasi domanda o problema che potresti avere.”

Giovanni, 45 anni, afferma:

“Da quando ho iniziato a giocare con Lucky Block Casino, non ho più cercato altrove. Il loro sito è sicuro, affidabile e offre un’esperienza di gioco fluida e senza problemi. Mi piacciono anche i loro bonus e promozioni regolari, che mi aiutano a aumentare le mie possibilità di vincita. Lo consiglio vivamente a qualsiasi appassionato di casinò online.”

Francesca, 28 anni, dichiara:

“Sono una grande fan dei giochi da tavolo e sono felice di dire che Lucky Block Casino offre una vasta selezione. Dai classici come il blackjack e la roulette, a giochi meno conosciuti come il baccarat e il craps, ce n’è per tutti i gusti. Inoltre, il loro software è di alta qualità, il che rende il gioco ancora più piacevole. Non potrei essere più felice del mio tempo trascorso qui!”

Sei alla ricerca di un’esperienza di gioco d’azzardo online autentica e sicura in Italia? Lucky Block Casino potrebbe essere la scelta perfetta per te. Ecco alcune risposte alle domande frequenti:

Che cos’è Lucky Block Casino? Lucky Block Casino è un casinò online affidabile che offre una vasta gamma di giochi, tra cui slot machine, blackjack, roulette e molto altro ancora.

Come posso iscrivermi a Lucky Block Casino? Il processo di iscrizione è semplice e veloce. Devi solo visitare il sito web di Lucky Block Casino, compilare il modulo di iscrizione e seguire le istruzioni.

È sicuro giocare a Lucky Block Casino? Assolutamente sì! Lucky Block Casino utilizza la più recente tecnologia di crittografia per garantire la sicurezza e la protezione dei dati degli utenti.

Posso giocare a Lucky Block Casino da qualsiasi dispositivo? Sì, puoi accedere a Lucky Block Casino da qualsiasi dispositivo, sia che si tratti di un computer, tablet o smartphone.

Design and Develop by Ovatheme